package com.flesler.componentas.core
{
	import flash.events.IEventDispatcher;
	
	public interface Entity extends IEventDispatcher, Initializable, Destroyable
	{
		function isRegistered(component:Component):Boolean;
		function register(component:Component):void;
		function unregister(component:Component):void;
		
		function getByType(type:Class):Component;
		function getAllByType(type:Class):Array;
		
		// Must return a copy, not the original list
		function get components():Array;
	}
}